package com.itheima.reggie.util;



import cn.hutool.http.HttpRequest;

import java.util.HashMap;
import java.util.Map;

public class SMSUtilsMarket {
    /**
     * *****************************
     添加http请求工具类在pom.xml中
     <dependency>
     <groupId>cn.hutool</groupId>
     <artifactId>hutool-all</artifactId>
     <version>4.5.15</version>
     </dependency>
     * *****************************
     // 1.mobile 手机号，用户自己输入
     String mobile = "";
     // 2. code 验证码 ，程序自动随机生成
     String code = "5790";
     短信内容为 { 验证码：**code**，**minute**分钟内有效，请勿泄漏于他人！}）
     // 3. smsSignId 签名ID（联系客服申请，测试请用：2e65b1bb3d054466b82f0c9d125465e2）
     String smsSignId="2e65b1bb3d054466b82f0c9d125465e2";
     // 4. templateId 模板ID
     （联系客服申请。测试ID请用：908e94ccf08b4476ba6c876d13f084ad，
     String templateId="908e94ccf08b4476ba6c876d13f084ad";
     // 5. appCode 应用code
     在https://market.console.aliyun.com/imageconsole/index.htm?#/bizlist?_k=r5f9m0查找
     String appCode = "";
     */
    public static void sendMessage(String mobile,
                                   String code,
                                   String smsSignId,
                                   String templateId,
                                   String appCode){
        //请求连接
        String host = "https://gyytz.market.alicloudapi.com/sms/smsSend";
        //拼装请求体
        Map<String, Object> querys = new HashMap<String, Object>();
        querys.put("mobile", mobile);
        querys.put("param", "**code**:"+code+",**minute**:5");
        querys.put("smsSignId", smsSignId);
        querys.put("templateId", templateId);

        try {
            String result = HttpRequest.post(host)
                    .header("Authorization", "APPCODE " + appCode)
                    .form(querys)//表单内容
                    .timeout(20000)//超时，毫秒
                    .execute().body();
            System.out.println(result);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        // 测试 以下签名、模板，appcode都是测试使用
        String smsSignId = "2e65b1bb3d054466b82f0c9d125465e2";  // 从购买的服务商获取
        String templateId = "908e94ccf08b4476ba6c876d13f084ad"; // 从购买的服务商获取
        String appCode = "77c2a05447644bb380aa119aefaa1b9d";     // 从自己的购买记录中获取
        SMSUtilsMarket.sendMessage("15104860601","521134",smsSignId,templateId,appCode);
    }
}
